এই পর্বে আমরা দেখবো কিভাবে পাইথনে স্ট্রিং তৈরী করতে হয়, ফরম্যাট করতে হয়, মডিফাই করতে হয়, ডিলেট করতে হয়। তাছাড়া স্ট্রিং এর বিভিন্ন অপারেশন , ফাংশন বা মেথডের সাথে আমরা পরিচিত হব।
পাইথন এ স্ট্রিং (String) কি?
স্ট্রিং হলো কিছু ধারাবাহিক ক্যারেক্টার (বর্ণ, সংখ্যা, চিহ্ন ইত্যাদি হতে পারে )
"A string is a sequence of characters."
যেমন টা বিভিন্ন ভাষায় বর্ণমালা থাকে, ইংরেজি তে ২৬ টা, ওরকম চিহ্ন বা বর্ণ গুলো ক্যারেক্টার।
মজার ব্যপার হচ্ছে কম্পিউটার কিন্তু এসব বর্ন, চিহ্ন কিছুই বুঝে না। ও যা বুঝে তা হচ্ছে, সংখ্যা। আরো স্পেসিফিক করে বললে বাইনারি সংখ্যা। অর্থাৎ ০, ১ ছাড়া কম্পিউটার আর কিছুই বুঝে না। তাহলে কম্পিউটার কে এসব বর্ন, চিহ্ন ইত্যাদি বোধগম্য করাতে হলে কি করতে হবে?
হ্যা, এই বোধগম্য করার মাধ্যমে রুপান্তর করাকেই বলা হয় এনকোডিং (encoding). অর্থাৎ ক্যারেক্টার থেকে বাইনারি সংখ্যায় রুপান্তর কে বলা হয় এনকোডিং। আর এর উল্টো কাজ, মানে বাইনারি সংখ্যা থেকে আবার ক্যারেক্টার এ রুপান্তর করাকে বলা হয় ডিকোডিং (Decoding).
পাইথনের স্ট্রিং এর ক্যারেক্টার গুলো হচ্ছে ইউনিকোড (Unicode) ক্যারেক্টার। অর্থাৎ সব ভাষার যত বর্ণ , চিহ্ন আছে সব এখানে ব্যবহার করা যাবে।
আপিনি এখান থেকে ইউনিকোড (Python Unicode.) সম্পর্কে আরো বিস্তারিত জানতে পারবেন।
কীভাবে পাইথনে স্ট্রিং তৈরী করব?
এটা একদম একটি সহজ কাজ। আমি যেসব ক্যারেক্টার নিয়ে একটি স্ট্রিং তৈরী করতে চাই সেগুলোকে উদ্ধৃতি চিহ্ন বা Quotation চিহ্নের ভিতের রাখলেই তা একটি স্ট্রিং হয়ে যাবে।
Single Quotation (' '), Double Quotation (" "), triple quotation (''' ''') এদের যেকোনো টি ব্যবহার করে আপনি স্ট্রিং তৈরী করতে পারবেন। নিচের উদাহরণ দেখলেই আরো ভালো করে বুঝে যাবেন।
# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)
my_string = "Hello"
print(my_string)
my_string = '''Hello'''
print(my_string)
# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
the world of Python"""
print(my_string)
Hello
Hello
Hello
Hello, welcome to
the world of Python
কীভাবে স্ট্রিং এর ক্যারেকটার গুলো কে অ্যাকসেস করব?
আমরা স্ট্রিং এর ভিতরে থাকা ক্যারেক্টারগুলোকে তাদের অবস্থানের ক্রমসংখ্যা বা ইনডেক্স (Index) ব্যবহার করে প্রত্যেকটি ক্যারেক্টার আলাদা আলাদা ভাবে অ্যাকসেস করতে পারবো। আবার চাইলে নির্দিষ্ট কোনো সীমা বা রেঞ্জ (Range) এর মধ্যে থাকা ক্যারেক্টার গুলোকে স্লাইস/টুকরা (Slice ) করে ও অ্যাকসেস করতে পারবো।
মজার একটা ব্যপার হচ্ছে আমাদের দৈনন্দিন জীবনে ক্রমসংখ্যা বা ইন্ডেক্স শুরু হয় ১ থেকে। কিন্তু প্রায় সব প্রোগ্রামিং ভাষাতেই ইন্ডেক্স শুরু হয় ০ থেকে। ইন্ডেক্স করার সময় কেবল এই ব্যপারটি মাথায় রাখলেই হবে।
যদি আমরা আমাদের স্ট্রিং ক্যারেক্টারগুলোর ইন্ডেক্স এর সীমার বাইরে কোনো কিছু অ্যাকসেস করতে চাই, তাহলে পাইথন ইন্টারপ্রেটার আমাদের কে এরর (ভুল) দেখাবে। বলবে যে IndexError
আরো একটি বিষয় হচ্ছে, আমরা যখন ইন্ডেক্স ব্যবহার করতে যাবো, তখন কিন্তু ইন্ডেক্স নাম্বার পূর্ণসংখ্যা বা Integer হতে হবে। অন্যথায় কি হবে? তখনো আরেক ধরনের এরোর পাবেন। ইন্টাপ্রেটার আপনাকে বলবে, TypeError The index must be an integer. We can't use floats or other types.
এখন নিচের কোডগুলো লক্ষ্য করুন। তাহলে আরো সহজে বুঝে যাবেন।
#Accessing string characters in Python
str = 'syedfaysel'
print('str = ', str)
#first character
print('str[0] = ', str[0])
#last character
print('str[-1] = ', str[-1])
#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])
#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
str = syedfaysel
str[0] = s
str[-1] = l
str[1:5] = yedf
str[5:-2] = ays
# index must be in range
>>> my_string[15]
...
IndexError: string index out of range
# index must be an integer
>>> my_string[1.5]
...
TypeError: string indices must be integers
এখন দেখবো কিভাবে স্ট্রিং স্লাইস বা টুকরা কিছু সংখ্যক ক্যারেক্টার অ্যাকসেস করা যায়।
স্লাইস করার জন্য যেটার করতে হবে তা হচ্ছে , প্রথমে আপনি কত নম্বর ইন্ডেক্স বা ক্রম থেকে Slice বা টুকরা করা শুরু করবেন এবং কত নম্বর ইন্ডেক্স পর্যন্ত স্লাইস করবেন তা বলে দিতে হবে। তাহলে পাইথন আপনার জন্য সেটা নিজে নিজে করে দিবে। ইতোমধ্যেই উপরের কোড এ তা দেখানো হয়েছে।
0 Comments